/**
 * 获取一年中当前小时之前所有小时方法
 * @returns {Array} 返回一年中当前小时之前所有小时
 */
export const getHoursBefore = () => {
  const tempTime = [];
  const date = new Date();
  const hours = date.getHours();
  for (let index = 1; index <= hours; index++) {
    tempTime.push(index < 10 ? `0${index}:00` : `${index}:00`);
  }

  return tempTime;
};

/**
 * 获取一年中当前月之前所有日期方法
 * @returns {Array} 返回一年中当前月之前所有日期
 */
export const getDayBefore = () => {
  const tempDate = [];
  const date = new Date();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  for (let index = 1; index < day; index++) {
    const date = `${month < 10 ? `0${month}` : `${month}`}-${
      index < 10 ? `0${index}` : index
    }`;
    tempDate.push(date);
  }

  return tempDate;
};

/**
 * 获取一年中当天之前七天所有日期方法
 * @returns {Array} 返回一年中当天之前七天所有日期
 */
export const getWeekDayBefore = () => {
  const tempDate = [];
  const date = new Date();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  for (let index = 7; index >= 1; index--) {
    const date = `${month < 10 ? `0${month}` : `${month}`}-${
      index < 10 ? `0${index}` : index
    }`;
    tempDate.push(date);
  }

  return tempDate;
};

/**
 * 获取一年中当前月之前所有月份方法
 * @returns {Array} 返回一年中当前月之前所有月份数组
 */
export const getMonthBefore = () => {
  const tempMonth = [];
  const date = new Date();
  const month = date.getMonth() + 1;
  for (let index = 1; index <= month; index++) {
    tempMonth.push(index < 10 ? `0${index}月` : `${index}月`);
  }

  return tempMonth;
};

/**
 * 生成指定最大位数随机数方法
 * @param {Number} maxDigits 传入最大位数
 * @param {Number} [min=0] 传入最小值，默认为 0
 * @param {Number} [max=10^maxDigits - 1] 传入最大值，默认为 10^maxDigits - 1
 * @returns {Number} 返回指定最大位数随机数
 */
export const generateRandomValue = (
  maxDigits,
  min = 0,
  max = Math.pow(10, maxDigits) - 1
) => {
  const randomNumber = Math.floor(Math.random() * (max - min + 1) + min);
  return randomNumber;
};
